/*
 * ========================================================
 * Copyright(c) 2014 杭州龙骞科技-版权所有
 * ========================================================
 * 本软件由杭州龙骞科技所有, 未经书面许可, 任何单位和个人不得以
 * 任何形式复制代码的部分或全部, 并以任何形式传播。
 * 公司网址
 * http://www.hzdracom.com/
 * ========================================================
 */
package com.shwread.httpsdk.http.face;

import android.content.Context;

import com.shwread.httpsdk.http.base.AbstractHttpPostDracom;
import com.shwread.httpsdk.http.callback.ActionListener;

import org.json.JSONObject;

import java.util.HashMap;

import logic.constants.AppConfig;
import logic.constants.Const;


/**
 * 电子券校验
 * @author 刘宾  
 * @date 2015年1月6日 上午9:59:41
 */
public class CheckEcardAction
        extends
        AbstractHttpPostDracom
{
	private String account;
	private String cardNum;
	private String cardPwd;
	private String fromType;
	
	/**
	 * 
	 * @param context
	 * @param account 未登录时传空
	 * @param cardNum
	 * @param cardPwd
	 * @param fromType 0|1：未登录|已登录
	 * @param actionListener
	 */
	public CheckEcardAction(Context context, String account, String cardNum, String cardPwd, String fromType, ActionListener actionListener) {
		super(context, "checkEcard.do", actionListener);
		this.account = account;
		this.cardNum = cardNum;
		this.cardPwd = cardPwd;
		this.fromType = fromType;
	}
	
	@Override
	public void getParameter(HashMap<String, String> parameter_map) {
		parameter_map.put("timeStamp", String.valueOf(timeStamp));
		parameter_map.put("cardNum", cardNum);
		parameter_map.put("cardPwd", cardPwd);
		parameter_map.put("fromType", fromType);
		parameter_map.put("enterpriseId", AppConfig.getEnterpriseId());
		if(fromType.equals("1")){ //为1是使用登录后的key，文档中的4个必填参数依然为必填参数并且需要加入到cid中
			parameter_map.put("account", account);
			parameter_map.put("cid", cid(account + Const.ACCOUNTTYPE + Const.CLIENTTYPE + timeStamp + AppConfig.getEnterpriseId() + cardNum + cardPwd + fromType));
		}else if(fromType.equals("0")){//激活来源类型为0时，使用默认key,并且文档中规定的4个必填参数中的的account和accountType为选填不要加入到cid中；
			parameter_map.put("cid", cid(Const.CLIENTTYPE + timeStamp + AppConfig.getEnterpriseId() + cardNum + cardPwd + fromType));
		}
	}
	
	@Override
	public void doResponseXml(String xml) {
		println(xml);
		int result = -1;
		try
		{
			JSONObject jsonObject = new JSONObject(xml);
			result = jsonObject.getInt("resultCode");
			if (result == 1000)
			{
				listener.OK(jsonObject.getString("returnObject"));
			}
			else
			{
				listener.ERROR(result, jsonObject.getString("returnObject"));
			}
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
	
	@Override
	protected void doRequestHeader(HashMap<String, String> header_map) {
		
	}
	
	@Override
	public void dispose() {
		
	}
	
}
